var VALIDATOR = {
		isEmail: function(val) {
			var pattern= new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			return pattern.test(val);
		},
		isPhoneNumber: function(val) {
		    var pattern = new RegExp(/^(((\(\+\d+\))|(\+\d+))(-|\.|\s)+)?(\d|-|\.|\s){6,20}$/i);
		    return pattern.test(val);
		},
		isNumber: function (val) {
		    return /^[-+]?[0-9]+$/.test(val);
		},
		isNumberGreaterThanZero: function (val) {
		    return /^[+]?[1-9][0-9]*$/.test(val);
		},
		isNumberNoneNegative: function (val) {
		    return /^[+]?[0-9]+$/.test(val);
		},
		init: function(){
			$('select.relation').each(function(){ 
				var ob = $('#'+$(this).attr('relation'));
				if(ob.val()!=''){
					$(this).val(ob.val());
				}
			});
		},
		submitChecking: function(){
			var isError = false;
			$('input.not-empty, textarea.not-empty').each(function(){
				$(this).css('background', 'none');
				if(!isError){
					$('span.error',$(this).parent()).remove();
				}
				if($(this).val()==''){
					str = ' <span class="error">'+$(this).attr('error-not-empty')+'</span>';
					$(this).parent().append(str);
					$(this).css('background', '#F2F5A9');
					isError = true;
				}
			});
			$('input.require-email').each(function(){
				$(this).css('background', 'none');
				if(!isError){
					$('span.error',$(this).parent()).remove();
				}
				if(!VALIDATOR.isEmail($(this).val())){
					str = ' <span class="error">'+$(this).attr('error-require-email')+'</span>';
					$(this).parent().append(str);
					$(this).css('background', '#F2F5A9');
					isError = true;
				}
			});
			$('input.require-phone-number').each(function(){
				$(this).css('background', 'none');
				if(!isError){
					$('span.error',$(this).parent()).remove();
				}
				if(!VALIDATOR.isPhoneNumber($(this).val()) && $(this).val()!=''){
					str = ' <span class="error">'+$(this).attr('error-require-phone-number')+'</span>';
					$(this).parent().append(str);
					$(this).css('background', '#F2F5A9');
					isError = true;
				}
			});
			$('select.require-select').each(function(){ 
				$(this).css('background', 'none');
				if(!isError){
					$('span.error',$(this).parent()).remove();
				}
				if(!$(this).val() || parseInt($(this).val(),10) <= 0){
					str = ' <span class="error">'+$(this).attr('error-require-select')+'</span>';
					$(this).parent().append(str);
					$(this).css('background', '#F2F5A9');
					isError = true;
				}
			});
			$('select.relation').each(function(){ 
				if($(this).val()!='-1' && $(this).val()!='0'){
					$('#'+$(this).attr('relation')).val($(this).val());
				}
			});
			//return false;
			return !isError;
		}
};